package com.site.service.backend.system;

import java.util.List;
import java.util.Map;

import com.site.dto.backend.system.AuthorityBizBean;
import com.site.dto.backend.system.ResourseBizBean;
import com.site.dto.backend.system.RoleBizBean;
import com.site.dto.backend.system.UsersBizBean;
import com.site.util.base.service.BaseService;
import com.site.util.extremetable.QueryPage;

/**
 * 角色Service接口
 * @author Lee 2012-12-04 
 *
 */
public interface RoleService extends BaseService{
	
	/**
	 * 根据条件查询角色
	 * @return
	 */
	public List<RoleBizBean> getRoleList(QueryPage queryPage,RoleBizBean vo);
	/**
	 * 根据角色id获得角色下的所有用户
	 * @param long1
	 * @return
	 */
	public List<UsersBizBean> getRoleUsers(Long roleId);
	/**
	 * 根据角色名称查询角色实体
	 * @param roleName
	 * @return
	 */
	public RoleBizBean getRoleByName(String roleName);
	/**
	 * 根据角色id获得角色下的所有权限
	 * @param roleId
	 * @return  返回Map,Key(auth_y 当前角色拥有的权限，auth_n 当前角色还未拥有的权限（目前还未用到）)
	 */
	public Map<String, List<AuthorityBizBean>> getRoleAuth(Long roleId);
	/**
	 * 根据角色id，获得角色下的所有资源
	 * @param roleId
	 * @return
	 */
	public List<ResourseBizBean> getRoleResourse(Long roleId);
	/**
	 * 根据角色id,关联出还未分配的资源以JSON方式返回前台
	 * @param roleId
	 * @return
	 */
	public List<ResourseBizBean> getNotRoleResourse(Long roleId);
	/**
	 * 根据用户id,获得所有角色
	 * @param id
	 * @param object
	 * @return
	 */
	public List<RoleBizBean> getUserRoles(Integer userId, QueryPage queryPage);
	/**
	 * 根据条件获得角色，HQL方式查询
	 * @param vo
	 * @return
	 */
	public RoleBizBean getModel(RoleBizBean vo);
	/**
	 * 根据角色ids，获得角色下的所有资源
	 * @return
	 */
	public List<ResourseBizBean> getRoleResourse(List<Long> ids);
}
